package com.smart.community.property.dto;

import com.smart.community.commons.base.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 卫生费数据传输对象
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class SanitationFeeDTO extends BaseDTO {
    private static final long serialVersionUID = -6796761626724548761L;

	/**
     * 费用编号
     */
    private String feeNo;
    
    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;
    
    /**
     * 社区ID
     */
    @NotNull(message = "社区ID不能为空")
    private Long communityId;
    
    /**
     * 楼栋ID
     */
    private Long buildingId;
    
    /**
     * 单元ID
     */
    private Long unitId;
    
    /**
     * 房户ID
     */
    @NotNull(message = "房户ID不能为空")
    private Long householdId;
    
    /**
     * 计费周期
     */
    private String billingPeriod;
    
    /**
     * 费用金额
     */
    @NotNull(message = "费用金额不能为空")
    @DecimalMin(value = "0.01", message = "费用金额必须大于0")
    private BigDecimal amount;
    
    /**
     * 到期日期
     */
    private LocalDate dueDate;
    
    /**
     * 支付状态：0-未支付，1-已支付，2-逾期
     */
    private Integer paymentStatus;
    
    /**
     * 已支付金额
     */
    private BigDecimal paymentAmount;
    
    /**
     * 支付时间
     */
    private LocalDate paymentTime;
    
    /**
     * 备注
     */
    private String remark;
} 